#define _CRT_SECURE_NO_WARNINGS 1
//
//#include<iostream>
//
//typedef long long ll;
//
//int main()
//{
//	ll l, r;
//	ll cnt = 0;
//	std::cin >> l >> r;
//
//	for (int i = l; i <= r; i++)
//	{
//		int t = i;
//		while (t)
//		{
//			if (t % 10 == 2)
//				cnt++;
//			t /= 10;
//		}
//	}
//	std::cout << cnt << std::endl;
//
//	return 0;
//}




//#include<iostream>
//#include<string>
//#include<set>
//
//typedef long long ll;
//
//int main()
//{
//	std::set<std::string> map;
//
//	std::string str;
//	std::cin >> str;
//
//	auto it = str.find("],");
//
//	std::string strNums1 = str.substr(1, it - 1);
//	std::string strNums2 = str.substr(it + 3, (str.size() - it - 4));
//
//
//	for (int i = 0; i < strNums1.size(); i++)
//	{
//		std::string tmpNum;
//		int j = i;
//		for (j = i; j<strNums1.size(); j++)
//		{
//			if (strNums1[j] != ',')
//			{
//				tmpNum += strNums1[j];
//				break;
//			}
//		}
//		i = j;
//		map.insert(tmpNum);
//	}
//
//	std::string res = "[";
//	for (int i = 0; i < strNums2.size(); i++)
//	{
//		std::string tmpNum;
//		int j = i;
//		for (j = i; j<strNums2.size(); j++)
//		{
//			if (strNums2[j] != ',')
//			{
//				tmpNum += strNums2[j];
//				break;
//			}
//		}
//		i = j;
//		if (map.count(tmpNum))
//		{
//			res += tmpNum+",";
//			map.erase(tmpNum);
//		}
//	}
//	res[res.size() - 1] = ']';
//	std::cout << res << std::endl;
//
//	return 0;
//}


#include<iostream>
#include<string>


int main()
{
	std::string s, st;
	std::cin >> s;

	for (auto ch : s)
	{
		if (st.size() && st.back() == ch)
		{
			st.pop_back();
		}
		else
		{
			st += ch;
		}
	}

	std::cout << ((st.size() == 0)  ? "0" : st) << std::endl;

	return 0;
}